package dog;

/*6.使用面向对象的思想，编写自定义描述狗的信息。设定属性包括：品种，年龄，性别，名字；方法包括：叫，跑。
 * 要求：
	1) 设置属性的私有访问权限，通过公有的getter和setter方法实现对属性的访
	2) 限定性别只能有“雌性”和“雄性”，如果无效输入进行提示，默认设置“雄性”。
	3) 设置构造函数实现对属性赋值
	4) 叫和跑的方法，描述不同的行为方式。
    编写测试类，测试狗类的对象及相关方法（测试数据信息自定义）
 * */
public class Dog {

	private String strain;
	private int age;
	private String sex;
	private String name;

	public String getStrain() {
		return this.strain;
	}

	public void setStrain(String strain) {
		this.strain = strain;
	}

	public int getAge() {
		return this.age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getSex() {
		return this.sex;
	}

	public void setSex(String sex) {
		if (!sex.equals("雄性")) {
			throw new RuntimeException("无效输入！");
		} else if (!sex.equals("雌性")) {
			throw new RuntimeException("无效输入！");
			
		}
		this.sex = sex;
	}

	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}
    //无参
	public Dog() {

	}
    //有参
	public Dog(String strain, int age, String sex, String name) {
		this.strain = strain;
		this.age = age;
		this.sex = sex;
		this.name = name;
		
	}

	// 叫的方法
	public void cry() {
		System.out.println("名字叫:" + name + "的" + strain + ",今年" + age + "岁了，" + "是一只" + sex + "的狗狗，" + "喜欢围着主人叫！");

	}

	// 跑的方法
	public void run() {
		System.out.println("名字叫:" + name + "的" + strain + ",今年" + age + "岁了，" + "是一只" + sex + "的狗狗，" + "喜欢围在主人身边跑！");
	}

}
